草庐IT

c++ - WaitForSingleObject 问题

全部标签

c - 如何使用 Windows 和 C 从 URL 获取数据?

在用户的网络浏览器中打开URL非常简单:ShellExecuteA(NULL,"open",url,NULL,NULL,SW_SHOWNORMAL);我应该调用什么来使用给定的URL从网站检索数据?在Mac上,我会使用:URLSimpleDownload(url,NULL,newDataH,0,NULL,NULL);它存储在newDataH中处理从url检索到的数据。很容易。在Windows上是否有等效项? 最佳答案 您可能正在寻找WinINet中的InternetReadFile函数.以下是该API中常用函数的一个很好的列表:Co

windows - 静默安装 Windows 7 时出现 startnet.cmd 问题

我正在尝试使用startnet.cmd文件在无人值守的情况下启动Windows7。问题是当启动setup.exe命令被触发时,安装程​​序运行并关闭,但无法重新启动,因为startnet.cmd仍然打开。如果我输入“退出”,它会启动设置并立即退出。有没有办法检查设置是否成功运行然后退出?wpeinitnetuseu:\\192.168.2.10\windowsu:startsetup.exe/unattend:\\192.168.2.10\windows\unattend.xml/norebootREMping-n30127.0.0.1REMexit 最佳答

c++ - 如何为在 MS VC++ 中开发的 C++ 程序分配特定部分的代码

我正在尝试使用这段代码将一段代码分配给一个独立的部分:#ifdef_MSC_VER#pragmasection(".evil",execute)#pragmacode_seg(".evil")#endif#ifdef__GNUC__static__attribute__((section(".evil")))#elifdefined_MSC_VERstatic__declspec(allocate(".evil"))#endifvoid__invoke__start(){//...但这不起作用,编译器说The__declspec(allocate())syntaxcanbeusedfo

c - 如何将分钟添加到包含 UTC 时间的 struct tm?

set_time()函数应该获取特定时间并将指定的分钟数添加到该时间并将其保存在*t中。#include#includeenum{JAN,FEB,MAR,APR,MAY,JUNE,JULY,AUG,SEP,OCT,NOV,DEC};voidset_time(structtm*t,intyear,intmon,intday,inthour,intmin,intsec,intmins_to_add){/*Copyallthevalues.*/t->tm_year=(year-1900);t->tm_mon=mon;t->tm_mday=day;t->tm_hour=hour;t->tm_m

c - 将文本附加到编辑控件? (Windows API)

我用C语言创建了一个简单的窗体,并向其中添加了一些控件。但是对于编辑控件,我无法向其添加文本,就像列表框控件一样。我所能做的就是从编辑控件中获取文本,向其中添加所需的行,然后再次设置文本。这是我为完成这项工作而编写的代码。voidAddText(HWNDEditControl,char*NewData){intTextLen=GetWindowTextLength(EditControl);char*Result=malloc(TextLen+strlen(NewData)+1);if(Result==NULL)return;GetWindowText(EditControl,Resu

c - Win32 中的 TIB 访问

深入研究与TIB(线程信息block)一起工作的Win32API函数的实现,例如:TLS访问函数:TlsAlloc、TlsFree、TlsSetValue、TlsGetValueGetLastError,SetLastError消息子系统:GetMessage、PeekMessage等通过读取fs:[0x18]选择器的内容,我们发现它们都访问了TIB,有时称为TEB(线程环境block)。OTOH这是不必要的,因为fs寄存器直接指向它。根据thisarticle我在实践中看到的是,fs寄存器保存了TIB结构开头的地址,而在偏移量0x18处它有一个指向自身的指针。间接访问TIB的原因可能

c++ - 是否可以使用内存缓冲区(或 PE 资源)来支持只读 SQLite 数据库?

我想使用Windows的“自定义资源”功能将存储在SQLite数据库中的相当大的数据block嵌入到我的二进制文件中。(这是一个日志记录工具的白名单)SQLite确实支持inmemorydatabases,但看起来这可能仅限于创建全新的数据库;并且似乎不支持从内存缓冲区读取;但我并不肯定。数据库是否支持这样的东西?(由于其他原因我必须嵌入SQLite,所以将它用于白名单也很棒......) 最佳答案 sqlite文档在线备份部分http://www.sqlite.org/backup.html有一些代码可以做你想做的事(即将内存数据

windows - 调用堆栈问题

我最近一直在研究调用堆栈。然而,我一直在阅读的所有示例和文章都是单线程的。我对调用堆栈在内存中的样子以及我们如何分析它很感兴趣。很抱歉在一个帖子中包含了这么多问题。但是,当每个问题都相关时,为每个问题创建一个帖子似乎很麻烦。我的问题是针对Windowsx86的。所以我遇到困难的问题是:进程中的每个线程是否总是有一个调用堆栈?即线程不共享调用栈?每个调用栈的大小是固定的吗?还是每个线程都可以不同?让我们假装自己做所有事情并用汇编编写我们的程序。调用栈是不是神奇的给了我们?还是必须自己实现?如果我们用汇编编写程序,我们是否会预留一些内存并将调用堆栈内存起始地址设置为ESP以进行设置?-迈克

无法使用 fopen 读取 UTF8 编码的文件(文件, "r,ccs=UTF-8")

在使用fopen打开文件时,我使用ccs=encoding(如MSDN中所述)将编码设置为UTF-8。当写入文件时它工作正常wchar_t*unicode_text=L"こんにちは";FILE*f=fopen("C:\\test.txt","w,ccs=UTF-8");fwprintf(f,L"%s\n",unicode_text);fclose(f);当我在文本编辑器中打开文件时,unicode会正常显示。但是当尝试从创建的文件中读取时,未检测到UTF-8编码:wchar_tbuffer[1000];FILE*f=fopen("C:\\test.txt","r,ccs=UTF-8")

c++ - 在 dll 之间使用 STL 时遇到问题

我在一个dll中有一个vector(或字符串),通过它的引用或指针在另一个dll中修改它是否安全,例如将新成员推送到vector或更改字符串的值?不知何故,当我这样做时有时会发生崩溃,我不知道为什么。如果我只是在另一个dll中读取它,使用const指针或引用,它绝对安全吗?使用STLport怎么样?更安全吗? 最佳答案 如果你修改一个STL容器,删除或添加新元素到它,它通常涉及分配/取消分配内存。如果碰巧您使用驻留在一个DLL中的分配器分配了一些内存,然后在另一个DLL中释放内存-使用另一个分配器,驻留在另一个DLL中-那么您可能会